home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor2
/
polyfit7.src
< prev
next >
Wrap
Text File
|
1992-08-18
|
2KB
|
79 lines
%%HP:T(3)A(D)F(.);
@ POLYFIT by Stefano Oss
DIR
MINA
\<< 1 GETI
DO ROT ROT GETI 4 ROLL DUP2
IF >
THEN SWAP
END DROP
UNTIL -64 FS?
END SWAP DROP
\>>
MAXA
\<< 1 GETI
DO ROT ROT GETI 4 ROLL DUP2
IF <
THEN SWAP
END DROP
UNTIL -64 FS?
END SWAP DROP
\>>
ROCO
\<< \-> A
\<< A SIZE OBJ\-> DROP \-> n m
\<< 1 m
FOR j 1 n
FOR i A { i j } GET
NEXT n \->ARRY
NEXT n EVAL
\>>
\>>
\>>
PLTF
\<< ROCO \-> VX VY n
\<< CLLCD "Plotting Points" 1 DISP
VX MINA SWAP DROP
VX MAXA SWAP DROP
VY MINA SWAP DROP
VY MAXA SWAP DROP \-> xmin xmax ymin ymax
\<< ERASE
'xmin-10*(xmax-xmin)/131' EVAL
'xmax+10*(xmax-xmin)/131' EVAL
'ymin-10*(ymax-ymin)/65' EVAL
'ymax+10*(ymax-ymin)/65' EVAL \-> xi xa yi ya
\<< xi xa XRNG yi ya YRNG xi yi R\->C xa ya R\->C BOX
\>> xmax xmin - 65 / 100 * IP 100 /
ymax ymin - 32 / 100 * IP 100 / \-> rx ry
\<< 1 n
FOR i
VX i GET
VY i GET \-> px py
\<< px rx - py R\->C px rx + py R\->C LINE
px py ry - R\->C px py ry + R\->C LINE
\>>
NEXT
\>>
\>>
\>>
\>>
POLF
\<< { X EQ pol } PURGE 1 + \-> A N
\<< A PLTP "Fitting..." 1 DISP A ROCO \-> VX VY n
\<< 1 N
FOR i 1 N
FOR j '\GS(k=1,n,VX(k)^(i+j-2))' EVAL
NEXT
NEXT { N N } \->ARRY 1 N
FOR i '\GS(k=1,n,VY(k)*VX(k)^(i-1))' EVAL
NEXT N \->ARRY SWAP / \-> C
'pol(X)=\GS(k=1,N,C(k)*X^(k-1))' DEFINE
'pol(X)' EVAL STEQ DRAW
'\v/\GS(k=1,n,(pol(VX(k))-VY(k))^2/(n-N))' EVAL
\>>
\>> PICT RCL SWAP \->STR "Chisq. = " SWAP + 1 \->GROB
{ # 5h # 5h } SWAP GOR
2 FIX 'EQ' EVAL \->Q 'Fit' \->TAG SWAP DUP PICT STO \->LCD { } PVIEW
\>>
END